System and method for providing directions haptically

ABSTRACT

Systems, methods, and computer-readable storage devices for providing directions haptically such that sight and hearing can continue unimpeded. In one exemplary embodiment, a wearable device (such as earphones, ear rings, gloves, glasses, or other wearable objects) configured as disclosed herein receives directions to an intended destination for a user, the directions comprising a movement action and a distance to the movement action. The wearable device has multiple haptic output units and generates, through one of those units, a haptic output based on the directions. This allows the user to receive the directions through touch rather than looking at their mobile device or from audio.

PRIORITY

The present application is a continuation of U.S. patent applicationSer. No. 16/680,500, filed Nov. 12, 2019, now U.S. Pat. No. 11,178,946,which is a continuation of U.S. patent application No. 15/821,835, filedNov. 23, 2017, now U.S. Pat. No. 10,716,371, which is a continuation ofU.S. patent application Ser. No. 14/948,286, filed Nov. 21, 2015, nowU.S. Pat. No. 9,829,338, the contents of which are incorporated hereinin their entirety.

BACKGROUND 1. Technical Field

The present disclosure relates to navigation and more specifically toproviding navigation directions using haptic outputs.

2. Introduction

Traditional navigation has relied on a combination of maps and audiblecommands. While a large variety of maps are available, looking at a mapis inherently distracting from the travel itself. For example, to lookat the map the user must either stop (thereby delaying arrival time) orlook at the map while continuing to travel (particularly dangerous whendriving). Providing of audible commands, particularly via GPS enablednavigation aids, mitigates some of these detriments. However, there arecircumstances where an individual needs the capacity to both see and/orhear in an unimpeded capacity, which both maps and auditory commandsfail to address.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

Disclosed are systems, methods, and computer-readable storage media forproviding haptic directions such that sight and hearing can continueunimpeded. In one exemplary embodiment, a system configured as disclosedherein receives directions to an intended destination for a user, thedirections comprising a movement action (such as turning or continuingstraight) and a distance to the movement action. The directions can bereceived from a GPS unit (such as a Garmin), a smartphone, a smartwatch,tablet, computer, dashboard navigation service, etc. The directions canbe received either individually (i.e., turn left on Main Street in ahalf mile) or as a list of all remaining directions to the destination.The system generates, via a processor, a left signal component and aright signal component based on the directions. For example, the systemcan make a left signal component based on the need to turn left and aright signal component based on the need to turn right. Exemplary leftand right components can be electrical signals indicating the proximityof a turn. The system transmits the left signal component to a lefthaptic output unit (a unit which generates haptic output) and transmitsthe right signal component to a right haptic output unit (another unitwhich generates haptic output), such that the directions arecommunicated to the user via the left haptic output unit and the righthaptic output unit. Exemplary haptic outputs by the left and righthaptic output units can include vibrations, changing surfacecharacteristics, shocks, or other means for tactile communication.

Consider the following example. A motorcycle rider needs to be extremelyfocused on his surroundings. Using a motorcycle configured as disclosedherein, the rider first pulls up directions to a location using hissmartphone (using an App such as Google Maps™ or Apple Maps™). Thesmartphone links wirelessly (using, for example, a Bluetooth connection)with the motorcycle and communicates the directions to the motorcycle.The motorcycle receives the directions from the phone, then analyzes thedirections to determine what signals should be sent to haptic feedbackunits located in the handlebars. If, for example, the rider needs toturn left in a half mile, the processor on the bike can receive thedirections and prepare a signal for the haptic feedback unit in the lefthandle of the handle bars to vibrate. If the rider needed to turn right,the right handle bar could vibrate. If the driver needed to staystraight, both handles could vibrate. As the rider approaches a turn,the signals (i.e., the left and right components) change, such that thehaptic outputs increase in amplitude, duration, and/or frequency.

Because the motorcycle has vibrations caused by the motor and movement,the system can calculate needed amplitude, duration, and/or frequency toensure that the user will feel the output. For example, the system candetect the motorcycle's regular vibration pattern, then produce hapticoutput strong enough to be felt over the regular vibration, where theadditional vibration (over the regular vibration) has a distinctamplitude, frequency, duration, etc.

The systems disclosed herein can be used for motorcycle and bicycleriders to obtain directions, glasses for the blind, gloves onskiers/snowboarders, watches, earrings, earphones (for when users don'twish to interrupt music and/or phone conversations), hearing aides,and/or steering wheels in automobiles. The systems disclosed herein canalso work between a smartphone and a smartwatch. For example, consider auser who has a smartphone in their right pocket and a smartwatch ontheir left wrist. As the phone receives directions, when the user needsto turn right the phone (in the right pocket) can vibrate, while thesmartwatch (on the left wrist) can vibrate when the user needs to turnleft. The same concept can be applied to phone/smartwatch combinationswhich are both on a single side of the body, with the user determiningwhich of the smartwatch and phone indicate left turns and right turns.

In various configurations, the haptic outputs can work in conjunctionwith visual and/or audible directions. In such configurations, the usermay hear audible directions in addition to receiving haptic directions,and similarly the user may look at a map/list of directions in additionto receiving haptic directions. For example, if a user is driving anautomobile and has directions being delivered audibly via a smartphoneor other GPS device, the steering wheel of the automobile can providehaptic outputs in conjunction with the audible directions. However,should the user desire to mute the audible directions, the hapticdirections can still be provided to the user as disclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system embodiment;

FIG. 2 illustrates an example motorcycle configuration;

FIG. 3 illustrates an example glasses configuration;

FIG. 4 illustrates an example of a smartphone/smartwatch configuration;

FIG. 5 illustrates a first example of haptic outputs approaching a turn;

FIG. 6 illustrates a second example of haptic outputs approaching aturn;

FIG. 7 a illustrates haptic output increasing in a stair-like fashion;

FIG. 7 b illustrates haptic output increasing in an exponential fashion;

FIG. 7 c illustrates haptic output having an upper limit;

FIG. 7 d illustrates haptic output periodically increasing in amplitude;

FIG. 7 e illustrates haptic output periodically increasing in frequency;

FIG. 8 illustrates calculation of required vibration strength overdetected vibrations;

FIG. 9 illustrates a first example method embodiment;

FIG. 10 illustrates a second example method embodiment; and

FIG. 11 illustrates a third example method embodiment.

DETAILED DESCRIPTION

A system, method and computer-readable media are disclosed which providehaptic directions to a user. As used herein, haptic output, hapticfeedback, and/or tacticle feedback recreates touch sensations byapplying force, vibration, shocks, and/or motions to the user. Variousembodiments of the disclosure are described in detail below. Whilespecific implementations are described, it should be understood thatthis is done for illustration purposes only. Other components andconfigurations may be used without parting from the spirit and scope ofthe disclosure. A brief introductory description of a basic generalpurpose system or computing device in FIG. 1 which can be employed topractice the concepts is disclosed herein. A more detailed descriptionof providing directions via haptics will then follow, with variationsand examples provided. These variations shall be described herein as thevarious embodiments are set forth. The disclosure now turns to FIG. 1 .

With reference to FIG. 1 , an exemplary system 100 includes ageneral-purpose computing device 100, including a processing unit (CPUor processor) 120 and a system bus 110 that couples various systemcomponents including the system memory 130 such as read only memory(ROM) 140 and random access memory (RAM) 150 to the processor 120. Thesystem 100 can include a cache 122 of high speed memory connecteddirectly with, in close proximity to, or integrated as part of theprocessor 120. The system 100 copies data from the memory 130 and/or thestorage device 160 to the cache 122 for quick access by the processor120. In this way, the cache provides a performance boost that avoidsprocessor 120 delays while waiting for data. These and other modules cancontrol or be configured to control the processor 120 to perform variousactions. Other system memory 130 may be available for use as well. Thememory 130 can include multiple different types of memory with differentperformance characteristics. It can be appreciated that the disclosuremay operate on a computing device 100 with more than one processor 120or on a group or cluster of computing devices networked together toprovide greater processing capability. The processor 120 can include anygeneral purpose processor and a hardware module or software module, suchas module 1 162, module 2 164, and module 3 166 stored in storage device160, configured to control the processor 120 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 120 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

The system bus 110 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. A basicinput/output (BIOS) stored in ROM 140 or the like, may provide the basicroutine that helps to transfer information between elements within thecomputing device 100, such as during start-up. The computing device 100further includes storage devices 160 such as a hard disk drive, amagnetic disk drive, an optical disk drive, tape drive or the like. Thestorage device 160 can include software modules 162, 164, 166 forcontrolling the processor 120. Other hardware or software modules arecontemplated. The storage device 160 is connected to the system bus 110by a drive interface. The drives and the associated computer-readablestorage media provide nonvolatile storage of computer-readableinstructions, data structures, program modules and other data for thecomputing device 100. In one aspect, a hardware module that performs aparticular function includes the software component stored in a tangiblecomputer-readable storage medium in connection with the necessaryhardware components, such as the processor 120, bus 110, display 170,and so forth, to carry out the function. In another aspect, the systemcan use a processor and computer-readable storage medium to storeinstructions which, when executed by the processor, cause the processorto perform a method or other specific actions. The basic components andappropriate variations are contemplated depending on the type of device,such as whether the device 100 is a small, handheld computing device, adesktop computer, or a computer server.

Although the exemplary embodiment described herein employs the hard disk160, other types of computer-readable media which can store data thatare accessible by a computer, such as magnetic cassettes, flash memorycards, digital versatile disks, cartridges, random access memories(RAMs) 150, read only memory (ROM) 140, a cable or wireless signalcontaining a bit stream and the like, may also be used in the exemplaryoperating environment. Tangible computer-readable storage media,computer-readable storage devices, or computer-readable memory devices,expressly exclude media such as transitory waves, energy, carriersignals, electromagnetic waves, and signals per se.

To enable user interaction with the computing device 100, an inputdevice 190 represents any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 170 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems enable a user to provide multiple types of input to communicatewith the computing device 100. The communications interface 180generally governs and manages the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

For clarity of explanation, the illustrative system embodiment ispresented as including individual functional blocks including functionalblocks labeled as a “processor” or processor 120. The functions theseblocks represent may be provided through the use of either shared ordedicated hardware, including, but not limited to, hardware capable ofexecuting software and hardware, such as a processor 120, that ispurpose-built to operate as an equivalent to software executing on ageneral purpose processor. For example the functions of one or moreprocessors presented in FIG. 1 may be provided by a single sharedprocessor or multiple processors. (Use of the term “processor” shouldnot be construed to refer exclusively to hardware capable of executingsoftware.) Illustrative embodiments may include microprocessor and/ordigital signal processor (DSP) hardware, read-only memory (ROM) 140 forstoring software performing the operations described below, and randomaccess memory (RAM) 150 for storing results. Very large scaleintegration (VLSI) hardware embodiments, as well as custom VLSIcircuitry in combination with a general purpose DSP circuit, may also beprovided.

The logical operations of the various embodiments are implemented as:(1) a sequence of computer implemented steps, operations, or proceduresrunning on a programmable circuit within a general use computer, (2) asequence of computer implemented steps, operations, or proceduresrunning on a specific-use programmable circuit; and/or (3)interconnected machine modules or program engines within theprogrammable circuits. The system 100 shown in FIG. 1 can practice allor part of the recited methods, can be a part of the recited systems,and/or can operate according to instructions in the recited tangiblecomputer-readable storage media. Such logical operations can beimplemented as modules configured to control the processor 120 toperform particular functions according to the programming of the module.For example, FIG. 1 illustrates three modules Mod1 162, Mod2 164 andMod3 166 which are modules configured to control the processor 120.These modules may be stored on the storage device 160 and loaded intoRAM 150 or memory 130 at runtime or may be stored in othercomputer-readable memory locations.

Having disclosed some components of a computing system, the disclosurenow turns to FIG. 2 , which illustrates an example motorcycleconfiguration. As illustrated, the motorcycle 206 can have a hapticfeedback unit in the left handle 204 and the right handle 202. Thesehaptic feedback units/generation units can indicate to a rider how soonthe rider needs to perform movement actions such as turning, goingstraight, performing a u-turn, etc.

The haptic units in each handle 202, 204 can receive the directions invarious ways. For example, the motorcycle 206 can work in conjunctionwith a smartphone, GPS, or other device which can receive, generate,and/or process directions. As the smartphone determines (via anyapplication or program) that driving instructions need to becommunicated to the rider, the phone can the communicate directions tothe motorcycle using a wired connection or a wireless connection such asBluetooth or RF. In other configurations, the motorcycle itself can alsoreceive, generate, and/or process the directions. In yet otherconfigurations, the directions can be generated and/or processed by acombination of a wireless device (such as a smartphone or GPS) and themotorcycle.

Once the motorcycle 206 has the directions, signal components for theleft haptic unit and the right haptic unit are generated by a centralcomputer, processor, or the smartphone. Signal components can be theportions of the directions needed for each haptic unit. For example, ifthe directions indicate to turn left, only the left haptic unit locatedin the left handle bar 202 may require input. Likewise, if thedirections indicate to turn right, only the right haptic unit mayrequire input. If the directions indicate to perform a u-turn, orcontinue straight, both the left and right haptic units may requireinput. The signal inputs received by the left and/or right haptic unitsare referred to as the left and right signal components.

The motorcycle, or the individual haptic units, can detect the regularvibration of the motorcycle and compute the level of haptic outputneeded to both overcome the regular vibration and inform the rider ofthe upcoming movement action (i.e., turn left, turn right, perform au-turn, continue straight). The level of haptic output needed toovercome the regular vibration can be based on historical data and/oruser preferences stored within the system/motorcycle, the GPS unit (orsmartphone), and/or a database networked to the system/motorcycle, aswell as vibrations currently being produced by the motor.

Consider the following examples. In a first example, the motorcycle hasa relative vibration level, and the past three times the system hasattempted to notify the rider of upcoming turns, the rider has missedthe turns. Based on a number of missed turns being exceeded (i.e., athreshold of three missed turns), the system raises the amplitude of thehaptic output to be applied in subsequent notifications of directions tothe user. The original amplitude, as well as the new (raised) amplitude,can be fixed or can vary based on the current vibration of themotorcycle. If the amplitude of haptic output varies dynamically basedon current vibrations of the motorcycle, a lower motor vibration fromthe motorcycle may result in lower amplitude and/or lower frequencyhaptic output, whereas a higher motor vibration may result in a higheramplitude and/or higher frequency haptic output.

In a second example, the rider has user preferences defined in theirsmartphone for a frequency of haptic output. For example, Jim mightprefer a burst of 5 vibrations to indicate a turn in 100 meters, whereasKen might prefer a burst of 10 vibrations to indicate the same turn. Thesystem, in converting the signal components to haptic output, identifiesthe stored frequency preferences of the user and produces the hapticoutputs in accordance with the user preferences. In a third example, thedata of many riders is analyzed to determine the frequencies,amplitudes, etc., which best ensure riders will notice haptic outputs.The system receives this data from a network server, then uses the datato generate the haptic outputs. Use of the aggregated data of many userscan also be done in conjunction with the individual rider's personalpreferences and/or historical data of the individual rider. As the ridercontinues using the system, information associated with the rider(motorcycle vibration, haptic outputs, user preferences, number offollowed directions, number of missed directions, ratio of followeddirections to missed, type of direction) can be uploaded to a server for(1) storage and/or (2) aggregation with similar information from otherriders.

FIG. 3 illustrates a pair of glasses 300 configured to provide hapticfeedback to the wearer in a manner similar to that of the motorcycle inFIG. 2 , where the haptic output units which generate the haptic outputare located in the glasses. As illustrated, the haptic output units arelocated in the temples (aka “arms”) 302, 304 of the glasses, but couldalso or alternatively located in the nose pads, eye wires (which holdthe actual glass), the end wires which connect the temples to the eyewires, the temple tips, or any other portion of glasses. As in FIG. 2(and in all embodiments disclosed herein), the glasses can work inconjunction with a smartphone, smartwatch, or other GPS enabled deviceto obtain directions, or can obtain the directions directly themselves.

Users following directions wearing the illustrated glasses 300 can benotified by a haptic output as various movement actions are approaching.For example, as the user approaches a turn, the right arm 302 of theuser's glasses may vibrate. As the user is getting close to their finaldestination, a specified vibration sequence can occur. As an alternativeto vibrations, the glasses 300 can be configured to put increasepressure from the glasses arms 302, 304 on the user's head. For example,the right arm 302 of the glasses may squeeze in slightly, notifying theuser of an upcoming action.

FIG. 4 illustrates an example of a smartphone/smartwatch configuration.In this illustration, a man wearing a smartwatch on his right wrist andcarrying a phone in his left hand. As the man walks down the street, thephone and/or smartwatch can determine directions the man needs to taketo arrive at his destination. If, for example, the man needs to turnleft at the next corner, the phone may vibrate once a hundred feet out,three times at fifty feet out, and continue vibrating from ten feet outthrough the turn. Likewise, the smartwatch can begin vibrating in asimilar fashion as the user approaches a right turn. If the user needsto continue walking straight, or make a u-turn, both the smartwatch andthe phone can vibrate simultaneously.

The phone and the smartwatch can communicate with one another viaBluetooth, short-wave RF, or other wireless communication means. Suchcommunication can be required when only one or the other is receivingthe directions. For example, if the phone has a wireless plan and thesmartwatch does not, the phone can receive the directions from anexternal server, then communicate the portion of the directions (i.e.,the signal component) corresponding to the smartwatch wirelessly.Similarly, if the phone were a different device, such as a tablet,reading device, wireless clothing (glasses, jacket, etc), the smartwatchcan be configured to receive the directions and communicate the signalcomponents to the tablet/reading device.

FIG. 5 illustrates a first example 500 of haptic outputs approaching aturn. In this example, haptic outputs 504 are only produced by thehaptic unit corresponding to the direction of the next turn as thedistance 502 to the turn decreases—resulting in the left haptic unit notproducing any haptic output 512 and the right haptic unit producinghaptic output 506, 508, 510. The haptic output produced can come inmultiple waves. As illustrated, the right haptic unit first produces(when the user is 800 meters away from the turn) a burst of three shortpulses 506. When the distance decreases (for example, to 400 meters), asecond burst of two longer pulses 508 are produced. When the turn ismore immediate (for example, within 25 meters) the haptic unit canproduce a single, long pulse 510 which extends through the turn.Alterative configurations can define the number of pulses (a pulse beinga single haptic output of a given duration) within a burst of hapticoutputs (pulses within a timeframe) for any given distance, the distancebetween bursts, the amplitude of bursts and/or pulses, the frequency ofpulses within a burst, the type of pulse/burst, or any other factors.Such configurations can be defined by user preferences, based onaggregated data of many users, and/or a pre-determined configuration.

For example, a user can configure the haptic output 504 of the righthaptic unit to both decrease the pulse frequency (as illustrated, goingfrom three pulses in a burst to a single pulse) and increase theamplitude of each pulse in a burst-by-burst basis. In such an example,the pulses of the second burst 508 would have higher amplitude than thepulses of the first burst 506, and the pulse of the third burst 510would be even higher.

The user could alternatively designate that the haptic output should notburst or pulse, but should instead be constantly escalating ordecreasing as turns approach. Yet another alternative is for a singlelong pulse (such as 510) to occur at the beginning of the hapticdirections (i.e., replacing the initial burst 506), with frequent pulses(such as 506) to occur as the turn approaches (i.e., replacing the finallong pulse 510). In other words, users can configure the directions tooccur in an opposite and/or different pattern than that illustratedaccording to preference.

FIG. 6 illustrates a second example 600 of haptic outputs approaching aturn. In this example, haptic outputs 604 are only produced by thehaptic unit corresponding to the direction of the next turn as thedistance 602 to the turn decreases—resulting in the right haptic unitnot producing any haptic output 612 and the left haptic unit producinghaptic output 606, 608, 610. The haptic output produced can come inmultiple waves. As illustrated, the left haptic unit first produces(when the user is 800 meters away from the turn) a burst of three shortpulses 606. When the distance decreases (for example, to 400 meters), asecond burst of two longer pulses 608 are produced. When the turn ismore immediate (for example, within 25 meters) the haptic unit canproduce a single, long pulse 610 which extends through the turn.Alterative configurations can define the number of pulses within a burstfor any given distance, the distance between bursts, the amplitude ofbursts and/or pulses, the frequency of pulses within a burst, the typeof pulse/burst, or any other factors. Such configurations can be definedby user preferences, based on aggregated data of many users, and/or apre-determined configuration.

FIGS. 7(A)-7(E) illustrate various configurations of the pulses andbursts discussed in FIG. 5 and FIG. 6 . FIG. 7 a illustrates hapticoutput increasing in a stair-like fashion 702. As illustrated, theamplitude of a pulse and/or successive pulses can be increasing atdesignated times (or distances) as a turn approaches. For example, as adriver approaches a turn, each successive set of pulses can be stronger(or faster) than the previous. Thus 500 meters from a turn the amplitudeof the pulse could be at a base level, 200 meters from the turn theamplitude could be twice as strong as the base level, and from 50 metersthrough the turn the amplitude could be three times as strong as thebase level. Likewise, if the frequency of the pulses is increasing asthe driver approaches a turn, the frequency of pulses can increase inset amounts based on pre-defined (designated) distances from the turn.

The “step” pattern illustrated can be particularly useful inconfigurations where the haptic output is constant as a user approachesthe turn, rather than starting and stopping. For example, at a firstpoint a haptic unit can begin outputting haptic output at a firstamplitude, with the vibrations (or other output) being continuouslyoutput at that first amplitude until reaching a second point, where thehaptic output continues to be output at a higher (second) amplitude.This constant output with varying frequency and/or amplitude can thencontinue through the turn.

In FIG. 7 b , the haptic output is increasing geometrically and/orexponentially as a user is approaching a turn. The upper limit can bebased on user preferences, user history, aggregated data from otherusers, and/or by haptic unit capabilities.

In FIG. 7 c , haptic output having an upper limit is illustrated. Thehaptic output quickly increases, then levels off as a user approaches aturn. Such configuration can be of use to users who respond well whenreminded of a turn before the need to turn becomes immediate.

FIG. 7 d , like FIG. 7 a , illustrates haptic output periodicallyincreasing in amplitude. However, as illustrated in FIG. 7 d , theamplitude and/or frequency drops between pulses (or sets of pulses),such that each subsequent reminder of a turn feels slightly different tothe user because of the increased amplitude/frequency.

FIG. 7 e illustrates an example of haptic output periodically increasingin frequency and decreasing the duration of individual pulses over time.Thus a first reminder can be a single long pulse, a second reminder canbe two medium pulses, and the final reminder can be three short pulses.The illustrated amplitude/frequency variations illustrated in FIG. 7 a-7e can be combined as desired.

The amplitudes/frequencies, as well as their relative increases, can beuser defined or can be determined by a computing device performing theprocesses described herein. Such determinations can be based on userhistory/behavior and/or the behavior of others. For example, userresponses to notifications can be recorded and analyzed by the system todetermine at what distance and/or time from a turn is best for aparticular user. As another example, the system can consider the actionsof many individuals in determining when, and at what amplitude, a hapticoutput notification should be delivered to a user. The people beingconsidered could be all users who are utilizing the system, friends ofthe user, family of the user, etc.

In addition, such notifications can be specific to location and based onlocal conditions. For example, the system can record when haptic outputwas provided to users for a specific turn, coupled with informationregarding if the users missed and/or made the turn. From an analysis ofthat data the system can determine the distance most likely to result inthe user making that specific turn for use in preparing haptic outputs.Such data can be further augmented with information about weatherconditions, time of day, other users in the vehicle, demographics of theuser, language of the user, age of the user, and/or data about all turns(rather than just that specific turn). Non-user-specific data (i.e.,weather, time of day) can be collected using any data collectionmechanism available, such as Internet data or manual entries by users.User specific data can be provided by the user or gleaned from userinteractions and behavior.

FIG. 8 illustrates calculation of required vibration strength overdetected vibrations. Consider the example of a motorcycle. Themotorcycle engine is creating a baseline/regular vibration 802. In orderto generate haptic output which the user/rider will feel, the systemneeds to generate haptic output distinct from the regular vibration. Inthis case, the system generates haptic output 804 having a vibrationstrength roughly twice as strong as the constant/regular vibrations ofthe motorcycle. The same principle can be applied to other haptic outputconfigurations. For example, if a user is driving an automobile and thehaptic outputs are being delivered through the steering wheel or theseat, the system can determine the standard vibration of the vehicle andgenerate haptic output which overcomes the standard vibrations such thatthe user will feel the haptic output generated. If the user is walkingdown the street, the system can detect the cadence and rhythm of theuser and generate haptic output having an amplitude and/or frequencybased on the detected gait of the user.

The calculation of vibration strength, frequency, duration, or otherhaptic output features necessary to overcome ambient haptics (such asvehicle vibration) can be performed either periodically or constantly.For example, if being performed constantly, the haptic output amplitude804 required for the user to feel the haptic output could be adjustedfrom a high amplitude to a low amplitude as the user slows down avehicle (and the vehicle vibrations are reduced). Likewise, theamplitude required could increase as the user speeds up, turns onto arough road, or otherwise increases baseline vibrations 802. Calculationscan also be tied directly to speed changes in the vehicle. For example,if the motorcycle is stopped, few vibration changes will be occurring.Likewise, if the motorcycle is traveling at a constant sixty miles/hour,relatively few changes in baseline vibration will be occurring. However,during a period of acceleration, changes in vibration may necessitatemore measurements. These additional measurements can help ensure thatthe eventual consistent vibration (during a stop or during a cruisingperiod) are accurate.

Having disclosed some basic system components and concepts, thedisclosure now turns to the exemplary method embodiments shown in FIGS.9-11 . For the sake of clarity, the method is described in terms of anexemplary system 100 as shown in FIG. 1 configured to practice themethod. The steps outlined herein are exemplary and can be implementedin any combination thereof, including combinations that exclude, add, ormodify certain steps.

In the first exemplary method embodiment illustrated in FIG. 9 , asystem 100 configured according to this disclosure receives directionsto an intended destination for a user, the directions comprising amovement action and a distance to the movement action (902). Exemplarymovement actions include “continue straight,” “turn left,” “turn right,”“slight left,” “take the second exit from the traffic circle,” etc. Anexample of directions received by the system 100 is “turn left in aquarter mile.” The system 100 generates, via a processor, a left signalcomponent based on the directions (904) and also generates, via theprocessor, a right signal component based on the directions (906). Thesystem 100 transmits the left signal component to a left haptic outputunit (908) and transmits the right signal component to a right hapticoutput unit, such that the directions are communicated to the user viathe left haptic output unit and the right haptic output unit (910).

In a second exemplary method embodiment, illustrated in FIG. 10 , thesystem 100 generates directions to an intended destination for a user,the directions comprising a movement action and a distance to themovement action (1002). The system 100 generates, via a processor, afirst signal component based on the directions (1004) and generates, viathe processor, a second signal component based on the directions (1006).The system 100 generates a first haptic output based on the first signalcomponent (1008), and transmits the second signal component to a secondhaptic output unit for generation of a second haptic output, such thatthe directions are communicated to the user via the first haptic outputand the second haptic output (1010). This exemplary method could beused, for example, where the system 100 is a smartphone which contains afirst haptic output unit and the user is using a smartwatch as a secondhaptic output unit.

In a third exemplary method embodiment, illustrated in FIG. 11 , thesystem receives, on a smartphone, directions to a destination, thedestination comprising a movement action and a distance to the movementaction (1102). The system 100 generates a first haptic output based onthe directions (1104) and transmits a second signal component to asecond haptic output unit for generation of a second haptic output, suchthat the directions are communicated to the user via the first hapticoutput and the second haptic output (1106). This exemplary method couldbe used, for example, where the system 100 is a smartphone whichcontains a first haptic output unit and the user is using a smartwatchas a second haptic output unit.

We next turn to some practical examples of how the principles andconcepts disclosed herein can be applied to specific circumstances.While specific examples are provided, it is noted that these conceptscan be mixed and matched, such that components described in oneembodiment can be used with other embodiments.

A first example is the use of haptic feedback as disclosed herein inapplications with handle bars, such as bicycles, motorcycles, tricycles,ATVs (All Terrain Vehicles), etc.

A next example is the use of haptic feedback in a steering wheel,specifically with automobiles. In such configurations there can behaptic output units on each side of the steering wheel—one for eachhand.

A next example is the use of haptic feedback for eye glasses. In suchconfigurations the haptic output units could be on each arm of the eyeglasses.

A next example is the use of haptic feedback in jewelry, such as rings,ear rings, bracelets, necklaces, and earphones. For example, if anindividual were wearing a ring on each hand, the left ring could producehaptic output when the individual needs to turn left and the right ringcan produce haptic output when the individual needs to turn right. Anecklace could have haptic output units on two separate, non-contiguous,portions to similarly indicate left and right turns. Haptic ear ringscould similarly indicate directions to the user. Haptic earphones couldbe used by users who don't wish to interrupt play of music whilereceiving directions.

A next example is the use of haptic feedback in a backpack, a hat,shoes, helmet, or other wearable object (including clothing, such asjeans, jackets, and shirts). With a backpack, the haptic output unitscould be in the shoulder straps, whereas in shoes each shoe couldcontain a separate haptic output unit. Gloves can similarly have ahaptic output unit in each glove. In a hat or helmet, each side of thehat, or each side of the brim, could contain a haptic output unit.

A next example is the use of haptic feedback in seats, such as car seats(as in a driver seat, not a seat for holding small children), motorcycleseats, bicycle seats, etc. In such configurations, each side of the seatcould have a separate haptic output unit.

A next example is the user of haptic feedback in canes used by theblind, or in walkers for the elderly.

Haptic outputs can include vibrations, shocks, temperature (heat, cold),raised surfaces (such as ridges, bumps, pressure, or sensations ofridges, bumps, etc.). While many of the examples disclosed herein usemultiple haptic outputs to communicate directions to a user (such ashaptic signals on a left handle indicating to turn left and hapticsignals on a right handle indicating to turn right), configurationsusing only a single haptic output are also possible. For example, if anindividual is blind and using a walking cane configured as disclosedherein, a first pattern of haptic signals could indicate the user shouldturn right and a second pattern of haptic signals could indicate to theuser they should turn left. A third pattern could indicate the need toperform a U-turn. That is, the directions could be provided using asingle haptic output unit (provided by a single smartphone, a singlesmartwatch, a key-chain dongle, a walking cane, etc.) to provide thedirections using distinct patterns of haptic output rather than hapticoutput from multiple haptic output generating units.

Likewise, systems which use more than two haptic outputs are likewisewithin the scope of this disclosure. For example, a system could utilizea combination of a smartphone, a smartwatch, and sunglasses tocommunicate directions to the user. If, for example, the smartwatch wereon the user's left arm, the smartphone were in the user's left pocket,and the user were wearing the sunglasses, one possible configurationcould be the smartphone and the smartwatch vibrating (i.e., providinghaptic output) simultaneously to indicate left turns, while both arms ofthe sunglasses vibrate simultaneously to indicate a right turn.Alternatively, haptic output from the smartphone might indicate a rightturn despite being in the left pocket, haptic output from the smartwatchmight indicate a left turn, and haptic output on the respective arms ofthe sunglasses is configured to be output simultaneously with thecorresponding left and right haptic outputs of the smartphone andsmartwatch. In yet another alternative, the sunglasses might beconfigured to only provide haptic output when a U-turn is required.

Systems configured as disclosed herein can provide directions from anyavailable resource. Practically, most directions will be providedthrough smartphone applications, such as Apple Maps™ or Google Maps™.However, directions can also be provided to follow custom user paths ormaps. In one example, a runner charts out a running path on their phoneor computer before setting out. As the runner proceeds, directions aregiven to the user through rings, phones, watches, gloves, sunglasses,etc., enabling the runner to stay on the path they mapped out withoutneeding to reference a map or their phone. In another example, severalskiers wish to compete in an unofficial competition. A first skier marksa path, and subsequent skiers seek to obtain faster times by followingthe first skier's path using haptic output directions to know where togo and when to turn. In other words, users can race one another over thesame course without needing to be physically together and withoutneeding to constantly review or memorize the course/directions.

The haptic output devices, such as smartphones, smartwatches, etc., cancommunicate via wired or wireless communications. Exemplary wirelesscommunicates can include Bluetooth, short range RF, infrared, or anyother wireless communication mechanism.

Users can set their preferences for how they wish to receive hapticoutput or the haptic output can be configured according to setparameters. One configuration allows for the haptic output to be basedon patterns of the user and/or others, including friends, family, othersof similar demographics and/or socio-economic status. The specificpatterns provided (for example, how a u-turn, or the need to continuestraight, is haptically communicated) can, if desired, be set by theuser, as can the amplitudes, frequencies, durations, pauses, patterns,etc. In addition, the system can be configured to identify the strengthof pre-existing vibrations or signals and calculate how to ensure theuser will feel the haptic output provided. The system can record useractions based on directions provided and make adjustments based on thatdata. Likewise, the recorded data can be used to adjust haptic outputprovided to other users based on a current user's behavior, similarityof the user with other users, and/or common location.

Systems configured according to this disclosure can be configured toexperiment to find haptic outputs which do and do not work. For example,if a certain highway exit is always missed by a wide variety of users,the haptic output might be significantly increased, provided earlier,etc., as the system (in this case a server compiling information relatedto directions provided and taken) identifies what haptic outputs resultin directions being correctly followed and what haptic outputs do notresult in followed directions. The system can record this information,then determine which variables affect the outcome. Specifically, thesystem can record user information such as age, gender, identifiedpreferences, amplitude/duration/frequency of haptic outputs, how longbefore the turn, and whether the haptic output resulted in a correctturn (or otherwise following the directions provided). All of thisinformation can be placed in a table and regression analyses can beperformed on the data to identify which variables affect the outcome. Insome cases, the analysis can be based only on the data acquired in amost recent timeframe (i.e., the past week), whereas in other cases theanalysis can be based on all data recorded with respect to a specificuser, location, and/or circumstances (i.e., on Saturday afternoons whenit is snowing). The system can automatically adjust haptic output basedon the findings of such analyses, or can provide a suggestion to a user,such as “95% of all users don't respond unless vibrations are strongerthan you've currently set. Would you like to increase your currentsettings?”

Systems configured according to this disclosure can utilize phones,tablets, smartwatches, and/or other devices to provide directions. Thesedirections can come across network connections or can be based on storedmap and location information found on the device and/or apparatusitself. Thus, possible hardware configurations can be (but are notlimited to):

-   -   (1) Network—Network Accessible Device (i.e., phone)—Apparatus        (i.e., motorcycle)—Haptic Outputs (i.e., vibration devices in        the handlebars)    -   (2) Network—Network Accessible Device (i.e., phone)—Haptic        Outputs (i.e., vibration devices in the handlebars)    -   (3) Device (i.e., phone)—Apparatus (i.e., motorcycle)—Haptic        Outputs (i.e., vibration devices in the handlebars)    -   (4) Device (i.e., phone)—Haptic Outputs (i.e., vibration devices        in the handlebars)    -   (5) Apparatus (i.e., motorcycle)—Haptic Outputs (i.e., vibration        devices in the handlebars)    -   (6) Network—Network Accessible Apparatus (i.e., car or        motorcycle)—Haptic Outputs (i.e., vibration devices in the        handlebars)    -   (7) Network—Haptic Outputs (where the haptic devices themselves        are connected to the network)

In a final example, systems configured according to this disclosure canprovide haptic output specific to a current activity, or activity level,of the user. For example, the system might be configured to alwaysprovide haptic output when the user is walking but to always providespoken directions when the user is driving. Likewise, the system mightbe configured to provide haptic output if listening to music, speakingon the phone, writing a text message, playing a game, and/or otherwisedistracted. One level of providing directions can be provided to a userwhen the user is walking versus when the user is running. Similarly, alevel of directions might be provided to a user when the user is“racing” versus cruising for pleasure (in motorcycles, driving, skiing,running, etc.). Such conditions can also be recorded by the system forfuture analysis, as discussed above.

Embodiments within the scope of the present disclosure may also includetangible and/or non-transitory computer-readable storage media forcarrying or having computer-executable instructions or data structuresstored thereon. Such tangible computer-readable storage media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer, including the functional design of any special purposeprocessor as described above. By way of example, and not limitation,such tangible computer-readable media can include RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to carryor store desired program code means in the form of computer-executableinstructions, data structures, or processor chip design. Wheninformation is transferred or provided over a network or anothercommunications connection (either hardwired, wireless, or combinationthereof) to a computer, the computer properly views the connection as acomputer-readable medium. Thus, any such connection is properly termed acomputer-readable medium. Combinations of the above should also beincluded within the scope of the computer-readable media.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,components, data structures, objects, and the functions inherent in thedesign of special-purpose processors, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Other embodiments of the disclosure may be practiced in networkcomputing environments with many types of computer systemconfigurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. Embodiments may also be practiced in distributed computingenvironments where tasks are performed by local and remote processingdevices that are linked (either by hardwired links, wireless links, orby a combination thereof) through a communications network. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the scope of thedisclosure. For example, the principles herein apply to providingdirections using haptic feedback in a wide variety of circumstances, andspecifically to providing haptic feedback which overcomes currentvibrations and tactile stimulus. Various modifications and changes maybe made to the principles described herein without following the exampleembodiments and applications illustrated and described herein, andwithout departing from the spirit and scope of the disclosure.

I claim:
 1. A method comprising: providing, from a computer system to amobile device associated with a user at a first time, first directionsfor navigating a specific location, the first directions comprising: afirst movement action; and a first distance to the first movementaction; receiving, at the computer system from the mobile device, datafrom the mobile device indicating that the user failed to successfullynavigate the specific location based on the first directions;identifying, via at least one processor of the computer system based onthe data, a modification to the first directions which improve alikelihood that the user will successfully navigate the specificlocation, resulting in second directions for navigating the specificlocation, the second directions comprising: a second movement action; asecond distance to the second movement action; and at least onedistinction from the first directions; and providing, from the computersystem to the mobile device of the user at a second time after the firsttime, the second directions for navigating the specific location.
 2. Themethod of claim 1, further comprising: receiving, at the computer systemfrom at least one additional mobile device associated with at least oneother user, additional data indicating how the at least one other usernavigated the specific location, wherein the identifying of themodification is further based on the additional data.
 3. The method ofclaim 2, wherein the identifying of the modification comprises executinga regression analysis on variables associated with navigation of thespecific location by the user and the at least one other user.
 4. Themethod of claim 2, wherein the at least one other user shares at leastone of a common demographic, a common language, and a common age withthe user.
 5. The method of claim 1, wherein the at least one distinctioncomprises a difference between the first distance and the seconddistance.
 6. The method of claim 1, wherein the at least one distinctioncomprises a difference between the first movement action and the secondmovement action.
 7. The method of claim 1, wherein: the first directionsand the second directions cause at least one haptic output deviceassociated with the mobile device to generate haptic output; and thefirst directions and the second directions further comprise a respectiveamplitude of haptic output to be generate by the at least one hapticoutput device.
 8. The method of claim 7, wherein the at least onedistinction comprises a difference in the respective amplitude of hapticoutputs between the first directions and the second directions.
 9. Themethod of claim 1, further comprising: receiving, at the computer systemweather conditions for the specific location when the user navigated thespecific location based on the first directions, wherein the identifyingof the modification is further based on the weather conditions.
 10. Themethod of claim 1, wherein the data from the mobile device indicatesthat the user incorrectly navigated the specific location.
 11. A systemcomprising: at least one processor; and a non-transitorycomputer-readable storage medium having instructions stored which, whenexecuted by the at least one processor to perform operations comprising:providing, to a mobile device associated with a user at a first time,first directions for navigating a specific location, the firstdirections comprising: a first movement action; and a first distance tothe first movement action; receiving, from the mobile device, data fromthe mobile device indicating that the user failed to successfullynavigate the specific location based on the first directions;identifying, based on the data, a modification to the first directionswhich improve a likelihood that the user will successfully navigate thespecific location, resulting in second directions for navigating thespecific location, the second directions comprising: a second movementaction; a second distance to the second movement action; and at leastone distinction from the first directions; and providing, to the mobiledevice of the user at a second time after the first time, the seconddirections for navigating the specific location.
 12. The system of claim11, the non-transitory computer-readable storage medium havingadditional instructions stored which, when executed by the at least oneprocessor, cause the at least one processor to perform operationscomprising: receiving, from at least one additional mobile deviceassociated with at least one other user, additional data indicating howthe at least one other user navigated the specific location, wherein theidentifying of the modification is further based on the additional data.13. The system of claim 12, wherein the identifying of the modificationcomprises executing a regression analysis on variables associated withnavigation of the specific location by the user and the at least oneother user.
 14. The system of claim 12, wherein the at least one otheruser shares at least one of a common demographic with the user, a commonlanguage with the user, and a common age with the user.
 15. The systemof claim 11, wherein the at least one distinction comprises a differencebetween the first distance and the second distance.
 16. The system ofclaim 11, wherein the at least one distinction comprises a differencebetween the first movement action and the second movement action. 17.The system of claim 11, wherein: the first directions and the seconddirections cause at least one haptic output device associated with themobile device to generate haptic output; and the first directions andthe second directions further comprise a respective amplitude of hapticoutput to be generate by the at least one haptic output device.
 18. Thesystem of claim 17, wherein the at least one distinction comprises adifference in the respective amplitude of haptic outputs between thefirst directions and the second directions.
 19. The system of claim 11,wherein the data from the mobile device indicates that the userincorrectly navigated the specific location.
 20. A non-transitorycomputer-readable storage medium having instructions stored which, whenexecuted by at least one processor to perform operations comprising:providing, to a mobile device associated with a user at a first time,first directions for navigating a specific location, the firstdirections comprising: a first movement action; and a first distance tothe first movement action; receiving, from the mobile device, data fromthe mobile device indicating that the user failed to successfullynavigate the specific location based on the first directions;identifying, based on the data, a modification to the first directionswhich improve a likelihood that the user will successfully navigate thespecific location, resulting in second directions for navigating thespecific location, the second directions comprising: a second movementaction; a second distance to the second movement action; and at leastone distinction from the first directions; and providing, to the mobiledevice of the user at a second time after the first time, the seconddirections for navigating the specific location.